CREATE database if NOT EXISTS `yiyi-boot` default character set utf8mb4 collate utf8mb4_general_ci;
USE `yiyi-boot`;

drop table if exists sys_operate_log;

/*==============================================================*/
/* Table: sys_operate_log                                  */
/*==============================================================*/
create table sys_operate_log
(
    id                   bigint not null auto_increment comment 'id',
    user_id              bigint comment '用户编号',
    tenant_id            varchar(20) default NULL comment '租户编号',
    application_name     varchar(50) default NULL comment '应用名',
    module               varchar(64) default NULL comment '模块',
    name                 varchar(64) default NULL comment '操作名',
    type                 int default 0 comment '操作分类',
    user_ip              varchar(50) default NULL comment '用户ip',
    user_agent           varchar(255) default NULL comment '浏览器UA',
    request_method       varchar(64) default NULL comment '请求方式',
    request_uri          varchar(128) default NULL comment '请求地址',
    start_time           datetime comment '开始时间',
    duration             int comment '执行时长',
    method_name          varchar(64) default NULL comment '方法名',
    class_name           varchar(64) default NULL comment '类名',
    params               varchar(8000) default NULL comment '参数',
    result_data          varchar(5000) default NULL comment '结果数据',
    exts                 varchar(512) default NULL comment '扩展字段',
    create_user          varchar(64) default NULL comment '创建用户',
    create_time          datetime comment '创建时间',
    deleted              tinyint(1) default 0 comment '是否删除',
    primary key (id)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT '操作日志表';


drop table if exists sys_error_log;

/*==============================================================*/
/* Table: sys_error_log                                    */
/*==============================================================*/
create table sys_error_log
(
    id                   bigint not null auto_increment comment 'id',
    user_id              bigint comment '用户编号',
    tenant_id            varchar(20) default NULL comment '租户编号',
    application_name     varchar(50) not null comment '应用名',
    request_method       varchar(16) default NULL comment '请求方法名',
    request_url          varchar(255) default NULL comment '请求地址',
    request_params       varchar(8000) default NULL comment '请求参数',
    user_ip              varchar(50) default NULL comment '用户IP',
    user_agent           varchar(512) default NULL comment '浏览器UA',
    exception_time       datetime default NULL comment '异常发生时间',
    exception_name       varchar(128) default NULL comment '异常名',
    exception_message    text comment '异常导致的消息',
    exception_root_cause_message text comment '异常导致的根消息',
    exception_stack_trace text comment '异常的栈轨迹',
    exception_class_name varchar(512) default NULL comment '异常发生的类全名',
    exception_file_name  varchar(512) default NULL comment '异常发生的类文件',
    exception_method_name varchar(512) default NULL comment '异常发生的方法名',
    exception_line_number int comment '异常发生的方法所在行',
    process_status       tinyint default 0 comment '处理状态 0:未处理, 1:已处理, 2:已忽略',
    process_time         datetime default NULL comment '处理时间',
    process_user_id      varchar(64) default NULL comment '处理用户编号',
    process_remarks      varchar(500) default NULL comment '处理备注',
    create_user          varchar(64) default NULL comment '创建用户',
    create_time          datetime default NULL comment '创建时间',
    update_user          varchar(64) default NULL comment '更新用户',
    update_time          datetime default NULL comment '更新时间',
    deleted              tinyint(1) not null default 0 comment '是否删除',
    primary key (id)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT '异常日志表';


drop table if exists sys_oss_config;

/*==============================================================*/
/* Table: sys_oss_config                                   */
/*==============================================================*/
create table sys_oss_config
(
    id                   bigint not null auto_increment comment 'id',
    name                 varchar(64) default NULL comment '配置名',
    storage_code         varchar(16) not null comment '存储器编号',
    master               tinyint(1) not null default 0 comment '是否主配置',
    config               varchar(4096) not null comment '配置信息',
    create_user          varchar(64) default NULL comment '创建用户',
    create_time          datetime default NULL comment '创建时间',
    update_user          varchar(64) default NULL comment '更新用户',
    update_time          datetime default NULL comment '更新时间',
    deleted              tinyint(1) not null default 0 comment '是否删除',
    primary key (id),
    key idx_storage_code (storage_code)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT 'oss配置表';

/*云存储器插入脚本配置数据自行替换*/
BEGIN;
insert into `sys_oss_config` (`name`, `storage_code`, `master`, `config`, `create_user`, `create_time`, `update_user`, `update_time`, `deleted`) values('数据库存储器','STR10001','1','{\"@class\":\"com.zxjbyte.yiyi.framework.oss.storage.db.DbOssConfig\",\"domain\":\"http://127.0.0.1:41080/yiyi-boot\"}','-1',now(),'-1',now(),'0');
insert into `sys_oss_config` (`name`, `storage_code`, `master`, `config`, `create_user`, `create_time`, `update_user`, `update_time`, `deleted`) values('本地存储器','STR10002','1','{\"@class\":\"com.zxjbyte.yiyi.framework.oss.storage.local.LocalOssConfig\",\"writeBasePath\":\"E:\\\\Document\\\\ProjectData\\\\yiyi-boot\",\"domain\":\"http://127.0.0.1:41080/yiyi\"}','-1',now(),'-1',now(),'0');
insert into `sys_oss_config` (`name`, `storage_code`, `master`, `config`, `create_user`, `create_time`, `update_user`, `update_time`, `deleted`) values('s3-京东云','STR10003','1','{\"@class\":\"com.zxjbyte.yiyi.framework.oss.storage.s3.S3OssConfig\",\"bucketName\":\"xxxx\",\"endpoint\":\"xxxx\",\"accessKey\":\"xxxx\",\"secretKey\":\"xxxx\"}','-1',now(),'-1',now(),'0');
COMMIT;

drop table if exists sys_oss_record;

/*==============================================================*/
/* Table: sys_oss_record                                        */
/*==============================================================*/
create table sys_oss_record
(
    id                   bigint not null auto_increment comment 'id',
    storage_service      varchar(15) comment '存储服务',
    suffix               varchar(20) comment '文件后缀',
    original_name        varchar(255) not null comment '原文件名',
    file_size            varchar(20) comment '文件大小',
    path                 varchar(128) not null comment '路径名',
    url                  varchar(1024) not null comment '文件地址',
    create_user          varchar(64) default NULL comment '创建用户',
    create_time          datetime default NULL comment '创建时间',
    update_user          varchar(64) default NULL comment '更新用户',
    update_time          datetime default NULL comment '更新时间',
    deleted              tinyint(1) not null default 0 comment '是否删除',
    primary key (id),
    key idx_path (path)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT 'oss上传记录表';






drop table if exists sys_oss_file;

/*==============================================================*/
/* Table: sys_oss_file                                     */
/*==============================================================*/
create table sys_oss_file
(
    id                   bigint not null auto_increment comment 'id',
    path                 varchar(128) not null comment '路径名',
    content              mediumblob not null comment '文件内容',
    create_user          varchar(64) default NULL comment '创建用户',
    create_time          datetime default NULL comment '创建时间',
    update_user          varchar(64) default NULL comment '更新用户',
    update_time          datetime default NULL comment '更新时间',
    deleted              tinyint(1) not null default 0 comment '是否删除',
    primary key (id),
    key idx_path (path)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT 'oss文件表';



drop table if exists sys_quartz_job;

/*==============================================================*/
/* Table: sys_quartz_job                                        */
/*==============================================================*/
create table sys_quartz_job
(
    id                   bigint not null auto_increment comment 'id',
    tenant_id            varchar(20) comment '租户编号',
    job_name             varchar(64) comment '任务名称',
    job_group            varchar(64) comment '任务组名',
    cron_expression      varchar(100) comment 'cron表达式',
    handler_class_name   varchar(255) comment '处理器类名',
    handler_method_name  varchar(100) comment '处理器方法名',
    method_param         varchar(255) comment '方法参数',
    job_config           varchar(2000) comment '任务配置',
    status               tinyint default 0 comment '状态：0-正常，1-暂停',
    create_time          datetime comment '创建时间',
    create_user          varchar(64) comment '创建用户',
    update_time          datetime comment '更新时间',
    update_user          varchar(64) comment '更新用户',
    deleted              tinyint(1) default 0 comment '是否删除',
    primary key (id),
    key idx_n_g (job_name, job_group)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT '定时任务表';




drop table if exists sys_job_log;

/*==============================================================*/
/* Table: sys_job_log                                           */
/*==============================================================*/
create table sys_job_log
(
    id                   bigint not null auto_increment comment 'id',
    job_key              varchar(200) comment '任务key',
    trigger_key          varchar(200) comment '触发器key',
    fire_time            datetime comment '实际触发时间',
    start_time           datetime comment '任务执行开始时间',
    end_time             datetime comment '任务执行结束时间',
    execution_time       int comment '执行耗时（毫秒）',
    refire_count         int comment '重新触发次数',
    status               tinyint(1) comment '状态：1-成功，2-失败',
    deleted              tinyint(1) default 0 comment '是否删除',
    primary key (id)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT '定时任务调度日志表';


drop table if exists sys_dict_type;

/*==============================================================*/
/* Table: sys_dict_type                                         */
/*==============================================================*/
create table sys_dict_type
(
    id                   bigint not null auto_increment comment 'id',
    type                 varchar(128) not null comment '字典类型',
    name                 varchar(128) comment '字典类型名称',
    status               tinyint default 0 comment '状态：0-启用，1-禁用',
    remark               varchar(500) comment '备注',
    create_user          varchar(64) default NULL comment '创建用户',
    create_time          datetime default NULL comment '创建时间',
    update_user          varchar(64) default NULL comment '更新用户',
    update_time          datetime default NULL comment '更新时间',
    deleted              tinyint(1) not null default 0 comment '是否删除',
    primary key (id)
)
    ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT '字典类型表';



drop table if exists sys_dict_data;

/*==============================================================*/
/* Table: sys_dict_data                                         */
/*==============================================================*/
create table sys_dict_data
(
    id                   bigint not null auto_increment comment 'id',
    dict_type            varchar(128) not null comment '字典类型',
    sort                 int comment '排序',
    dict_label           varchar(100) comment '字典标签',
    dict_value           varchar(100) comment '字段值',
    css_class            varchar(100) comment 'css样式属性',
    show_style           varchar(100) comment '显示样式',
    status               tinyint default 0 comment '状态：0-启动，1-禁用',
    remark               varchar(200) comment '备注',
    create_user          varchar(64) default NULL comment '创建用户',
    create_time          datetime default NULL comment '创建时间',
    update_user          varchar(64) default NULL comment '更新用户',
    update_time          datetime default NULL comment '更新时间',
    deleted              tinyint(1) not null default 0 comment '是否删除',
    primary key (id),
    key idx_dict_type (dict_type)
)
    ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT '字典数据表';
